import store from '@/store'

export default {

    inserted(el, binding) {
        //bindling.value为指令的绑定值
        const { value } = binding

        if (store.getters.buttonMap.size == undefined) {
            // 初始加载的时候，还没有写入到vuex中，因此使用setInterval在下次dom更新时生效
            let intervalID = setInterval(() => {
                try {
                    // 得到按钮上的路径
                    const buttonMap = store.getters.buttonMap
                    if (value && value.length > 0) {
                        const path = value
                        const hasPermission = buttonMap.get(path)
                        // 没有权限时，是否显示按钮，取决于button管理的上 是否显示 的设置
                        if (!hasPermission) {
                            el.parentNode && el.parentNode.removeChild(el)
                        }
                    }
                    // 清空触发器
                    if (store.getters.buttonMap.size != undefined) {
                        clearInterval(intervalID);
                    }
                } catch (e) {
                    console.log("vuex中的PathMap暂未初始化")
                }
            }, 500);
        } else {
            // 得到按钮上的路径
            const buttonMap = store.getters.buttonMap
            if (value && value.length > 0) {
                const path = value
                const hasPermission = buttonMap.get(path)
                if (!hasPermission) {
                    el.style.display = "none"
                }
            }
        }
    }
}
// if (perVal) {
//     //假设某用户对某模块只有添加和删除的权限
//     //这个权限信息(即pers)应该是不同用户登录时从后台拿到的对应的信息
//     //hasPer为true为有权限
//     //hasPer为false为无权限
//     let buttonMap = store.getters.buttonMap
//     console.log(buttonMap);
//     let hasPer = buttonMap.get(perVal)
//     //没有权限就先隐藏此元素吧
//     if (!hasPer) {
//         el.style.display = "none"
//     }
// }